perm filename NLM.AGE[AM,DBL] blob sn#500064 filedate 1980-04-09 generic text, type T, neo UTF8
1.  Objectives

	The goal of the AGE project is to construct a computer program
to facilitate the building of knowledge-based, high-performance programs.
In the AGE system an attempt has been made to:

     1.  isolate inference, control, and representation techniques
         from a few previous knowledge-based systems, and
     2.  reprogram them for domain independence.

     The  product is a collection of building-block programs (called
"components") combined with an interface that assists the user in the 
design  and  construction of knowledge-based programs.   

	The design and implementation of the components in AGE are based
primarily  on  the  experience  gained  in  building  knowledge-based
programs at the Heuristic Programming Project in the last decade.  The
programs  that  have  been,   or  are  being,  built  are:   DENDRAL,
meta-DENDRAL, MYCIN, HASP, AM, VM, SACON, MOLGEN   and   CRYSALIS.
It is hoped that  AGE will speed up the process of building
knowledge-based  programs  and facilitate  the  dissemination  of  AI
techniques by:   (1) packaging common AI software  tools so that they
do  not need to  be reprogrammed  for every problem;  and (2) helping
people   who   are  not   knowledge-engineering   specialists   write
knowledge-based programs.


2.  AGE System Organization 

	The current AGE system provides the user with a set of pre-
programmed modules called "components" or "building blocks".  Using
different combinations of these components, the user can build a
variety of programs that display different problem-solving behavior.  
AGE also provides user interface modules that help the user in constructing
and specifying the details of the components.
 
	A  component is  a collection of functions and variables that
support conceptual entity in program form.  For example, production 
rule, as a component, consists of: (1) a rule interpreter that 
support the syntactic and semantic description of production rule 
representation as defined in AGE, and (2) various strategies for rule 
selection and execution.

	The  components in  AGE have been carefully selected and
modularly programmed to be  useable in combinations.  For those users
not familiar enough to experiment with combining the components, AGE
currently provides the user two predefined configuration of 
components--each configuration is called a "framework".  One framework
(called Blackboard) is for building programs that are based on the 
Blackboard Model [Lesser 77].  Blackboard model uses the concepts of 
a  globally accessible data structure called a "blackboard", and 
independent sources of knowledge which cooperate to form hypotheses.  
The Blackboard model has been modified to allow flexibility in 
representation, selection, and utilization of knowledge.  The other 
framework (called Backchain) is for building programs that use
backward-chained production rules as its primary method of generating
inferences.

	To support the user in the selection, specification, and use 
of the components, AGE is currently organized around four  major
subsystems that interact in various ways.  Around it is a system 
executive that allows the user to access the subsystems through the use 
of menu selection.   Figure 1. shows the general interrelationship among 
these subsystems.  

       BROWSE:  The function of BROWSE subsystem is to guide the 
user in browsing through its textual knowledge  base, called the MANUAL.
The  MANUAL contains (a) a  general description of the building-block  
components on the conceptual level;  (b)  a description of the 
implementation of these concepts within AGE; (c) a description of how 
these components are used within the user program; (d) how they can be 
constructed by the user; and (e) various examples.  The  information in 
the  MANUAL is  organized to represent the conceptual hierarchy of the 
components and to represent the functional relationship among them.

        DESIGN:  The function  of the DESIGN subsystem  is to guide
the user  in  the design and  construction of his  program 
through the use of predefined configuration of components, or
framework.   Each framework is defined in DESIGN-SCHEMA, 
a data structure in the form of AND/OR tree, that,  on  one  hand,
represents  all  the  possible configuration of components within the 
framework; and, on  the other hand, represents the decisions  the user 
must make in order to design the details of the object program.  
Using this schema, the DESIGN subsystem guides the user  from one 
design decision point to another. At each decision point, the user 
has access to the MANUAL and also to advice regarding design decisions 
at that point.  An appropriate  ACQUISITION   module  can  be  invoked  
from  the DESIGN subsystem  so that general design  and implementation 
specifications can be accomplished simultaneously.

     ACQUISITION:   For each component  that the user must
specify,  there is a  corresponding acquisition module and editor 
that asks the user for task-specific information.  The calling sequence 
of the acquisition module is guided by  DESIGN-SCHEMA when the user is 
using  the DESIGN subsystem.  However, they can also be accessed directly.

     INTERPRETER:   This   subsystem  contains  several modules that
help the user run and  debug his program.  The Syntax Check 
module checks for the completeness and correctness of the specification
for an entire framework.  The Interpreter executes the user program.
The program can be executed with various tracing modes.  However,
AGE currently provides no special debugging tools beyond what is 
available in Interlisp.

     EXPLANATION:  AGE  has  enough  information to  replay  its
execution steps, and it has reasonable justifications for the actions
within  the various framework.   However,  AGE  is  totally
ignorant of  the user's task domain and has  no means of conducting a
dialogue about  the task domain.  A detailed history of the execution
steps is available to the user.  The HISTORYLIST can be used in a
variety of ways, including constructing explanations.


    SYSTEM KNOWLEDGE      SUBSYSTEM           RESULT 
                              |
       ←←←←←←←←←←←       ←←←←←V←←←←←←
      |  MANUAL   |....>|  BROWSE    |
      |←←←←←←←←←←←|...  |←←←←←|←←←←←←|
                     .        |
       ←←←←←←←←←←←   .   ←←←←←V←←←←←←       ←←←←←←←←←←←←
      |  DESIGN   |....>|  DESIGN    |....>|USER SYSTEM |
      |  SCHEMA   |...  |            |     |   DESIGN   |
      |←←←←←←←←←←←|  .  |←←←←←|←←←←←←|     |←←←←←←↑←←←←←|
                     .        |<...................
       ←←←←←←←←←←←   .   ←←←←←V←←←←←←        ←←←←←←←←←←←
      |COMPONENTS |....>| ACQUISITION|....>|   USER     |
      |           |     |            |     |  SYSTEM    |
      |←←←←←←←←←←←|     |←←←←←←←←←←←←|     |←←←←←←.←←←←←|
                               |<..................
                         ←←←←←←V←←←←←   
                        |INTERPRETER |.....> EXECUTION   
                        |←←←←←←|←←←←←|       HISTORY LIST


                 Figure 1.  AGE System Organization 
                (... = data flow; --- = control flow)


3.  AGE User Program

	A program built by using AGE consists of the following elements:
a globally accessible data structure organized as a graph; knowledge base
represented as sets of production rules (called Knowledge Sources) and/or 
as UNITS (see UNITS package description); control information that defines 
how and when Knowledge Sources and rules are to be interpreted; and functions
and variables used by the rules.  AGE contains many predefined functions
and variables designed to be used by the user program.  In addition to these,
a user program may contain any additional definitions specified by the user.


4.  Current Status

	AGE-1 has been available to limited number of users on experimental
basis since October, 1979.  A more public version is scheduled to be 
available in early July, 1980.


5.  AGE Workshop

	A three-day workshop was conducted on the week of March 4, 1980 for
a limited number of people who had requested access to AGE.  Without 
exception the attendees represented organizations that wished to build
knowledge-based programs, but could not do so because of lack of qualified
AI programmers.  The aim of the workshop was to familiarize the user with
AGE (many of them needing help in learning Interlisp language) and to have
a running program by the end of the workshop.  Each attendee was required
to bring his own problem to be implemented.   The names of the organization
that sent attendees to the workshop, and brief description of the problems 
they are interested in implementing on AGE are listed below:

Information Science Group, University of Missouri-Columbia
   	Interpretation of test results for determining the cause of 
blood coagulation problems in patient with excessive bleeding.  If the
interpretation problem can be successfully implemented, they will go on 
to implement a program that recommend anticoagulant therapy. 

Institute of Medical Electronics, University of Tokyo
	Diagnosis of cardiovascular disease using diverse data and knowledge,
and therapy recommendation with re-evaluation diagnosis.  In general, this
group is interested in building programs that serve as research tools rather
than as applied clinical tools.

Department of Psychology, University of Colorado
	This group is using the Blackboard framework in AGE to build a 
psychological model of prose comprehension.  They had been using AGE
since a few months prior to the workshop.

Oak Ridge National Laboratory
	Interpretation of physical signals--non-medical application.

Schlumberger-Doll Research Center
	Interpretation of physical signals--non-medical application.


6.  Future Plans

	Although there has been some use of AGE, there needs to be an
extensive test of its capabilities.  We intend to implement a relatively 
complex application problem ourselves that would serve as this test.  At the
same time we will use feedback from outside users to improve the system.

	For AGE-2, our plan is to improve the user interface so that non-
specialist in knowledge-based programs can use the system without having
to attend a workshop.  It includes extensive research into the problem
of determining appropriate knowledge representation and processing for   
given tasks.  This involves characterizing problems in a variety
of ways, and matching the characterizations with those in the various 
framework still to be implemented.